/**
 * @file       QuickSort.h
 * @brief      
 * @author     Hanwei
 * @version    1.0.0
 */

/*********************************************************************
 * Date 2015年12月30日      Initial Version
 *********************************************************************/

#ifndef  QUICKSORT_INC
#define  QUICKSORT_INC
int Partition(int* arr, int p, int r )
{
	int x = arr[r] ; 
	int i = p-1;
	int t ; 

	for ( int j=p; j < r; j++) {
		if (arr[j] <= x)
		{
			i++ ; 
			t = arr[j] ; 
			arr[j] = arr[i] ; 
			arr[i] = t ; 
		}
	}
	i++; 
	arr[r] = arr[i] ; 
	arr[i] = x ; 
	return i ; 
}
void QuickSort(int* arr,  int p , int r )
{
	if( p < r)
	{
		int q = Partition(arr, p, r) ; 
		QuickSort(arr, p, q-1) ; 
		QuickSort(arr, q+1, r) ; 
	}
}
#endif   // ----- #ifndef QUICKSORT_INC  -----
